Prior computer platforms have been symmetric multi processors (SMP) arrangements where multiple CPUs are running a single copy of the operating system (OS). The OS provides time sharing services to allow multiple applications to run. However, this arrangement permits the applications to interfere with each other. For example, if the system is running an accounting application, the accounting application may disproportionately allocate memory in the system, as well as processors that the OS can allocate. Then, when some other application needs processors or memory, for example a manufacturing application, it would not be able to allocate sufficient memory or processors for its needs, and therefore would exhibit unacceptable performance. Thus, the manufacturing application would have been significant slowed or otherwise adversely impacted by the accounting application. Also, this arrangement also leaves the system vulnerable to failures. Any problem with one application could cause all other applications to fail.
A known solution to this problem is to separate the computer system into partitions or protected domains. These partitions are hardware separations that place resources into separate functional blocks. Resources in one block do not have direct access to resources in another block. This prevents one application from using the entire system resources, as well as contains faults and errors. This solution presents its own problems. The partitions, once defined, are static in nature, and cannot be readily changed. Such systems are intolerant to faults. First, these systems require the presence of a configuration processor to manage the partition formation process upon boot-up. Thus, these solutions include a single point of failure. Secondly, if a particular resource is not present during the partition formation process due to fabric failure or other problems, an affected partition or even the entire system may be unable to function.